package com.jzoffer;

import java.util.Scanner;

public class MorethanHalfNum {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] array = new int[N];
        for(int i = 0;i < N;i++){
            int num = sc.nextInt();
            array[i] = num;
        }
        int modeNum = MoreThanHalfNum_Solution(array);
        System.out.println(modeNum);
    }

    /*
    * 数组中有一个数字出现的次数超过数组长度的一半，请找出这个数字。
    * 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。
    * 由于数字2在数组中出现了5次，超过数组长度的一半，
    * 因此输出2。如果不存在则输出0。
    * */
    public static int MoreThanHalfNum_Solution(int [] array){
        if(array == null || array.length < 1){
            return 0;
        }
        if(array.length == 1){
            return array[0];
        }
        int modeNum = array[0];
        int count = 1;
        for (int i = 1; i < array.length; i++) {
            if(modeNum == array[i]){
                count++;
            }else{
                count--;
                if(count == 0){
                    modeNum = array[i];
                    count++;
                }
            }
        }

        count = 0;
        // 得到的树还得判断是否超过一半
        // 有可能最后一个数的count为1 但并非超过一半
        for (int i = 0;i < array.length;i++){
            if(array[i] == modeNum){
                count++;
            }
        }
        return count > array.length / 2 ? modeNum:0;
    }
}
